
#if !defined(__TCLVA_H)
#define __TCLVA_H

#include "cpptcl.h"
#include "vhpubsub/vhpubsub.h"
#include "SubscriberListener.h"
#include "StdAfx.h"
#include "Utils.h"

class Tclva {
public:
	Tclva();
	~Tclva();

	int         initialize();
	void        uninitialize();
    void        connect(Tcl::object const &argv);
    std::string getSessionInfo();
    void        subscribe(Tcl::object const &argv);
    void        unsubscribe(Tcl::object const &argv);
    std::string getData();
    void        setDebugMode(Tcl::object const &argv);
    void        log();
	void        cleanUp();

private:
    bool                                _debug;
	SubscriberListener                  *_pSubscriberListener;
    vhpubsub::Session                   *_pSession;
    std::string                          _sessionName;
    std::map<std::string,std::string>    _watchList;
    std::string                         _endpoint;
};

#endif // __TCLVA_H